# ifndef __COMCursor_H_
# define __COMCursor_H_

# include "COMBase.h"
# include "GPSMapEditItf.h"

struct CCursor_t;

class CComCursor : public CComDualInterface<ICursor, & LIBID_GPSMapEdit> {
  public:
	CComCursor (CCursor_t & _cursor) :
		m_cursor (_cursor)
	{}

	STDMETHOD (Delete) ();
	STDMETHOD (get_Latitude)  (double * _ret);
	STDMETHOD (get_Longitude) (double * _ret);
	STDMETHOD (SetPosition) (double _dfLatitude, double _dfLongitude);
	STDMETHOD (get_Heading) (double * _ret);
	STDMETHOD (put_Heading) (double _dfVal);
	STDMETHOD (get_HasHeading) (VARIANT_BOOL * _ret);
	STDMETHOD (put_HasHeading) (VARIANT_BOOL _vbVal);
	STDMETHOD (get_Color) (long * _ret);
	STDMETHOD (put_Color) (long _lVal);
	STDMETHOD (get_Radius) (long * _ret);
	STDMETHOD (put_Radius) (long _lVal);
	STDMETHOD (get_ArrowColor) (long * _ret);
	STDMETHOD (put_ArrowColor) (long _lVal);
	STDMETHOD (get_Label) (BSTR * _ret);
	STDMETHOD (put_Label) (BSTR _bstrVal);
	STDMETHOD (get_LabelColor) (long * _ret);
	STDMETHOD (put_LabelColor) (long _lVal);
	STDMETHOD (get_LabelX0) (long * _ret);
	STDMETHOD (get_LabelY0) (long * _ret);
	STDMETHOD (get_LabelAlignment) (long * _ret);
	STDMETHOD (SetLabelAlignment) (long _x0, long _y0, long _lAlignMask);
	STDMETHOD (get_Hidden) (VARIANT_BOOL * _ret);
	STDMETHOD (put_Hidden) (VARIANT_BOOL _vbVal);
	STDMETHOD (LoadImageFromFile) (BSTR _strFileName, long _x0, long _y0);
	STDMETHOD (UnloadImage) ();
	STDMETHOD (get_Tag) (VARIANT * _ret);
	STDMETHOD (put_Tag) (const VARIANT * _pVal);
	STDMETHOD (get_ContourColor) (long * _ret);
	STDMETHOD (put_ContourColor) (long _Val);

  private:
	CCursor_t & m_cursor;
};

# endif // __COMCursor_H_